package com.teacherprofile.common.domain;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.enums.poi.HorizontalAlignmentEnum;
import com.alibaba.excel.enums.poi.VerticalAlignmentEnum;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.IdType;
import com.teacherprofile.common.converters.CheckStatusConverter;
import com.teacherprofile.common.converters.DateConverter;
import com.teacherprofile.common.converters.refresher_trainings.*;
import com.teacherprofile.common.core.domain.BaseEntity;
import lombok.Data;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentStyle;
import com.alibaba.excel.annotation.write.style.HeadFontStyle;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;

/**
 * 进修培训对象 tb_refresher_trainings
 *
 * @author qvtu
 * @date 2025-05-16
 */
@Data
@ContentStyle(horizontalAlignment = HorizontalAlignmentEnum.CENTER, verticalAlignment = VerticalAlignmentEnum.CENTER)
@ExcelIgnoreUnannotated
@ColumnWidth(22)
@HeadRowHeight(16)
@HeadFontStyle(fontHeightInPoints = 12)
@TableName("tb_refresher_trainings")
public class RefresherTrainings extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;
    /**
     * 教职工号
     */
    @ExcelProperty("教职工号")
    private String userName;

    /**
     * 姓名
     */
    @ExcelProperty("姓名")
    private String nickName;
    /**
     * 培训名称
     */
    @ExcelProperty("培训名称")
    private String trainingName;


    /**
     * 教研室（0.教师A01，1.教室A02，100.其他）
     */
    @ExcelProperty(value = "教研室", converter = RefresherTrainingOfficeTypeConverter.class)
    private Integer officeType;
    /**
     * 培训类别（0.专业技能类，1.管理技能类，100.其他）
     */
    @ExcelProperty(value = "培训类别", converter = RefresherTrainingTypeConverter.class)
    private Integer trainingType;
    /**
     * 培训方式（0.线上,1.线下）
     */
    @ExcelProperty(value = "培训方式", converter = RefresherTrainingMethodConverter.class)
    private Integer trainingMethod;
    /**
     * 培训渠道（0.内部，1.外部，100.其他）
     */
    @ExcelProperty(value = "培训渠道", converter = RefresherTrainingChannelConverter.class)
    private Integer trainingChannel;
    /**
     * 培训起始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "培训起始时间", converter = DateConverter.class)
    private Date trainingStart;
    /**
     * 培训结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @ExcelProperty(value = "培训结束时间", converter = DateConverter.class)
    private Date trainingEnd;
    /**
     * 考核方式（0.笔试，1.实践报告，100.其他）
     */
    @ExcelProperty(value = "考核方式", converter = RefresherTrainingAssessmentMethodConverter.class)
    private Integer assessmentMethod;

    /**
     * 扫描件路径（http://xx../1.jpg,http://xx../1.jpg）
     */
    @ExcelProperty(value = "扫描件路径")
    private String scannedDocumentsUrl;
    @ExcelProperty(value = "培训费用")
    private Integer fee;
    /**
     * 培训成果
     */
    @ExcelProperty(value = "培训成果", converter = RefresherTrainingAchievementsConverter.class)
    private Integer achievements;

    @ExcelProperty(value = "组织单位")
    private String organizer;

    /**
     * 培训学时
     */
    @ExcelProperty(value = "培训学时")
    private Integer trainingHours;

    /**
     * 参训人列表
     */
    @ExcelProperty(value = "参训人列表")
    private String traineeList;
}
